﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LibNiconico.NiconicoApi.Alert
{

    /// <summary>
    /// 受信ハンドラ
    /// </summary>
    /// <param name="args"></param>
    public delegate void ReceiveNicoAlertNotificationMessageHandler(NicoAlertNotificationMessageReceiveArgs args);

    /// <summary>
    /// ニコニコアラートクライアントインターフェース
    /// </summary>
    public interface INiconicoAlertClient:IDisposable
    {
        /// <summary>
        /// 受信ハンドラ
        /// </summary>
        event ReceiveNicoAlertNotificationMessageHandler Received;

        /// <summary>
        /// 非同期に接続
        /// </summary>
        /// <returns></returns>
        Task ConnectAsync();


        /// <summary>
        /// 接続中か判定
        /// </summary>
        bool Connected { get; }

        /// <summary>
        /// 切断
        /// </summary>
        void Close();
    }
}
